package com.ryuhi.jtools.idcard;

import com.ryuhi.jtools.idcard.util.StringUtil;

public enum FullHalfEnum {

    FULL {
        @Override
        String[] getStandardChars() {
            return new String[]{
                    "０", "１", "２", "３", "４", "５", "６", "７", "８", "９", "Ａ", "Ｂ", "Ｃ", "Ｄ", "Ｅ", "Ｆ", "Ｇ", "Ｈ", "Ｉ", "Ｊ", "Ｋ", "Ｌ", "Ｍ", "Ｎ", "Ｏ",
                    "Ｐ", "Ｑ", "Ｒ", "Ｓ", "Ｔ", "Ｕ", "Ｖ", "Ｗ", "Ｘ", "Ｙ", "Ｚ", "ａ", "ｂ", "ｃ", "ｄ", "ｅ", "ｆ", "ｇ", "ｈ", "ｉ", "ｊ", "ｋ", "ｌ", "ｍ", "ｎ",
                    "ｏ", "ｐ", "ｑ", "ｒ", "ｓ", "ｔ", "ｕ", "ｖ", "ｗ", "ｘ", "ｙ", "ｚ", "－", "　", "：", "．", "，", "／", "％", "＃", "！", "＠", "＆", "（", "）",
                    "＜", "＞", "＂", "＇", "？", "［", "］", "｛", "｝", "＼", "｜", "＋", "＝", "＿", "＾", "￥", "￣", "｀"
            };
        }

        @Override
        String convertString(String str) {
            return StringUtil.strReplace(getStandardChars(), HALF.getStandardChars(), str);
        }
    },

    HALF {
        @Override
        String[] getStandardChars() {
            return new String[]{
                "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y",
                        "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "-", " ", ":", ".", ",", "/", "%", "#", "!", "@", "&", "(", ")",
                        "<", ">", "\"", "\'", "?", "[", "]", "{", "}", "\\", "|", "+", "=", "_", "^", "$", "~", "`"
            };
        }

        @Override
        String convertString(String str) {
            return StringUtil.strReplace(getStandardChars(), FULL.getStandardChars(), str);  //半角到全角
        }
    },

    ;

    abstract String[] getStandardChars();

    abstract String convertString(String str);
}
